#if !defined(IDIRECT3D9_SUPPORT_H)
#define IDIRECT3D9_SUPPORT_H

class IDirect3D9Support
{
public:
	virtual ~IDirect3D9Support() { }

	virtual bool IsDeviceAcceptable(D3DCAPS9 const *caps, D3DFORMAT adapterFormat, D3DFORMAT backBufferFormat, bool windowed) = 0;
	virtual HRESULT OnCreateDevice(IDirect3DDevice9 *device, D3DSURFACE_DESC const *backBufferSurfaceDesc) = 0;
	virtual HRESULT OnResetDevice(IDirect3DDevice9 *device, D3DSURFACE_DESC const *backBufferSurfaceDesc) = 0;
	virtual void OnFrameRender(IDirect3DDevice9 *device, double time, float elapsedTime) = 0;
	virtual void OnLostDevice() = 0;
	virtual void OnDestroyDevice() = 0;
};

#endif
